﻿<?php

/*
 * Condições do teste:
 *
 * - Considerar que existe uma conta ativa de administrador.
 * - Considerar que no campeonato brasileiro não existem times cadastrados.
 * - Considerar que ja existe um bolão criado para o campeonato paulista.
 * 
 *
*/

require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
require_once 'Conexao.php';

class TesteCadastroCampeonato extends PHPUnit_Extensions_SeleniumTestCase {

    protected $receivedCon;
    protected $result;
    protected $insercaoBD = "INSERT INTO bolao(id, id_jogo, nome, email_criador, importante)
        VALUES(100, 1, NULL, NULL, 0)";
    protected $remocaoBD = "DELETE FROM bolao
        WHERE id=100";

    protected function setUp() {
        $this->receivedCon = new Conexao();
        $this->receivedCon->conect();
        echo "conexao bem sucedida.\n";

        $this->result = $this->receivedCon->query($this->insercaoBD);
        echo "Operacao no banco de dados bem sucedida.\n";

        //$this->receivedCon->limpar_memoria($this->result);
        //echo "Memória limpa com sucesso.\n";*/

        $this->setBrowser("*firefox");
        $this->setBrowserUrl("http://localhost");
    }


    protected function tearDown() {

        $this->receivedCon->query($this->remocaoBD);
        echo "Banco deletado com sucesso.\n";
        $this->receivedCon->close();
        echo "Conexao finalizada com sucesso.\n\n";

    }

    public function logonAdmin(){

        $this->open("http://localhost/administrador/bolao/criar");
        $this->type("email", "fabiofeliciano@di.ufpb.br");
        $this->type("senha", "123456");
        $this->click("submit");

    }

    public function testCampoJogosSemTimes() {

        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->select("s_campeonato", "label=Brasileiro");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("Não há jogos cadastrados para este campeonato.
                Por favor escolha outro campeonato ou adicione jogos a este."));            
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());
        }
    }

    public function testBolaoJaCadastrado() {

        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->select("s_campeonato", "label=Paulista");
        $this->waitForPageToLoad("30000");
        $this->click("criarBolao");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("O bolão deste jogo já foi criado"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());
        }

    }

    public function testBolaoCriadoComSucesso() {

        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->select("s_campeonato", "label=Paulista");
        $this->waitForPageToLoad("30000");
        $this->click("criarBolao");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("Bolão criado com sucesso!"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());
        }
    }
}

?>